home *** CD-ROM | disk | FTP | other *** search
/ MacHack 2000 / MacHack 2000.toast / pc / The Hacks / Easy as pi dcmd ƒ / dcmdGlue.a < prev    next >
Text File  |  2000-06-23  |  2KB  |  92 lines

  1. EntryPoint    MAIN
  2.         IMPORT    CommandEntry, _DATAINIT
  3.         JMP    CommandEntry
  4.     
  5. ; This is never executed. Used to force the linker to give us a %A5Init segment.
  6.  
  7.         LEA    _DATAINIT, A0 
  8.         ENDMAIN
  9.  
  10. dcmdGetMacroName    PROC    EXPORT
  11.         CLR.L    8(SP)
  12.         IMPORT    FixdcmdGetMacroName
  13.         BRA.S    FixdcmdGetMacroName
  14.         ENDPROC
  15.  
  16. MacsBugTable    PROC
  17.         EXPORT    dcmdDrawLine
  18. dcmdDrawLine    BSR.S    MacsBugDisp
  19.  
  20.         EXPORT    dcmdDrawString
  21. dcmdDrawString    BSR.S    MacsBugDisp
  22.  
  23.         EXPORT    dcmdDrawPrompt
  24. dcmdDrawPrompt    BSR.S    MacsBugDisp
  25.  
  26.         EXPORT    dcmdGetPosition
  27. dcmdGetPosition    BSR.S    MacsBugDisp
  28.  
  29.         EXPORT    dcmdSetPosition
  30. dcmdSetPosition    BSR.S    MacsBugDisp
  31.  
  32.         EXPORT    dcmdGetNextParameter
  33. dcmdGetNextParameter BSR.S    MacsBugDisp
  34.  
  35.         EXPORT    dcmdGetNextExpression
  36. dcmdGetNextExpression BSR.S    MacsBugDisp
  37.  
  38.         EXPORT    dcmdGetBreakMessage
  39. dcmdGetBreakMessage    BSR.S    MacsBugDisp
  40.  
  41.         EXPORT    dcmdGetNameAndOffset
  42. dcmdGetNameAndOffset BSR.S    MacsBugDisp
  43.  
  44.         EXPORT    dcmdGetTrapName
  45. dcmdGetTrapName    BSR.S    MacsBugDisp
  46.  
  47.         EXPORT    dcmdGetNextChar
  48. dcmdGetNextChar    BSR.S    MacsBugDisp
  49.  
  50.         EXPORT    dcmdPeekAtNextChar
  51. dcmdPeekAtNextChar    BSR.S    MacsBugDisp
  52.  
  53.         EXPORT    dcmdSwapWorlds
  54. dcmdSwapWorlds    BSR.S    MacsBugDisp
  55.  
  56.         EXPORT    dcmdSwapScreens
  57. dcmdSwapScreens    BSR.S    MacsBugDisp
  58.  
  59.         EXPORT    dcmdForAllHeapBlocks
  60. dcmdForAllHeapBlocks BSR.S    MacsBugDisp
  61.  
  62.         EXPORT    dcmdScroll
  63. dcmdScroll    BSR.S    MacsBugDisp
  64.  
  65.         EXPORT    dcmdDrawText
  66. dcmdDrawText    BSR.S    MacsBugDisp
  67.  
  68.         EXPORT    FixdcmdGetMacroName
  69. FixdcmdGetMacroName
  70.         BSR.S    MacsBugDisp
  71.         NOP            ; yes, we need it
  72.  
  73. MacsBugDisp
  74.         MOVE.L    (SP)+, D0        ; get table rtn addr (which is 2 more than the bra.s)
  75.         LEA    MacsBugTable+2, A1    ; get beginning of table
  76.         SUB.L    A1, D0        ; offset from beginning of table
  77.         LSR.L    #1, D0        ; div by 2
  78.  
  79.         MOVE.L    (A7)+, A0        ; get dcmd return address
  80.         MOVE.W    D0, -(A7)        ; push selector
  81.         MOVE.L    A0, -(A7)        ; push dcmd return address
  82.  
  83. ; Since there is no jump table (only one segment allowed), MacsBug puts its callback
  84. ; address at 4(A5).
  85.  
  86.         MOVE.L    4(A5), A0
  87.         JMP    (A0)
  88.  
  89.         ENDP
  90.  
  91.         END
  92.